用python写进制转换小程序

您所在的位置:网站首页 python 进制转换 用python写进制转换小程序

用python写进制转换小程序

2023-08-19 03:14| 来源: 网络整理| 查看: 265

最近信息课上有出进制转换的题目,上课就开始比心算

后来我就想能不能直接写一个程序来解决这个问题(虽然计算器上有这样的功能)

自己写的好处就是可以转换一些奇奇怪怪的进制而不局限于二进制八进制十六进制等

话不多说直接上代码

dict01 = {'a':'10','b':'11','c':'12','d':'13','e':'14','f':'15'} dict02 = {'10':'a','11':'b','12':'c','13':'d','14':'e','15':'f'} # digi = int(input("输入n进制 例如:2 暂时只支持2到16进制\n")) # innum = input("输入数字 例如:1101 或者1eft(10对a,11对b以此类推 暂时只支持到16进制\n") # digo =int(input("输入输出进制(支持2-16) 例如:8 \n")) def turnto10(dig,num): numout = 0 if dig!=10: for i in range(len(num)): if num[-1-i] in dict01: numout += int(dict01[num[-1-i]])*(dig**(i)) else: numout+=int(num[-1-i])*(dig**(i)) elif dig ==10: numout=int(num) return numout def turnfrom10(num,dig): numout = [] numstr = str(num) if dig>10: while num != 0: if num % dig>9: numout.append(dict02[str(num%dig)]) else: numout.append(num%dig) num//=dig elif dig==10: for i in range(len(numstr)): numout.append(numstr[-1-i]) else: while num != 0: numout.append(num%dig) num//=dig return numout res = 'y' while res=='y': digi = int(input("输入n进制 例如:2 暂时只支持2到16进制\n你的输入进制:")) innum = input("输入数字 例如:1101 或者12eff(10对a,11对b以此类推 暂时只支持到16进制\n你的要求数字:") digo = int(input("输入输出进制(支持2-16) 例如:8 \n你的输出进制:")) innum = turnto10(digi,innum) # print(innum) list_out =turnfrom10(innum,digo) print("答案:",end='') for i in range(len(list_out)): print(list_out[-1-i],end='') print("\n") res = input('输入y继续,回车退出')

程序思路就是先把数字处理成十进制再处理成其他进制



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3